/*
 ============================================================================
 Name		: FM_RadioDocument.h
 Author	  : kamal
 Copyright   : Your copyright notice
 Description : Declares document class for application.
 ============================================================================
 */

#ifndef __FM_RADIODOCUMENT_h__
#define __FM_RADIODOCUMENT_h__

// INCLUDES
#include <akndoc.h>

// FORWARD DECLARATIONS
class CFM_RadioAppUi;
class CEikApplication;

// CLASS DECLARATION

/**
 * CFM_RadioDocument application class.
 * An instance of class CFM_RadioDocument is the Document part of the
 * AVKON application framework for the FM_Radio example application.
 */
class CFM_RadioDocument: public CAknDocument
{
	public:
		// Constructors and destructor

		/**
		 * NewL.
		 * Two-phased constructor.
		 * Construct a CFM_RadioDocument for the AVKON application aApp
		 * using two phase construction, and return a pointer
		 * to the created object.
		 * @param aApp Application creating this document.
		 * @return A pointer to the created instance of CFM_RadioDocument.
		 */
		static CFM_RadioDocument* NewL(CEikApplication& aApp);

		/**
		 * NewLC.
		 * Two-phased constructor.
		 * Construct a CFM_RadioDocument for the AVKON application aApp
		 * using two phase construction, and return a pointer
		 * to the created object.
		 * @param aApp Application creating this document.
		 * @return A pointer to the created instance of CFM_RadioDocument.
		 */
		static CFM_RadioDocument* NewLC(CEikApplication& aApp);

		/**
		 * ~CFM_RadioDocument
		 * Virtual Destructor.
		 */
		virtual ~CFM_RadioDocument();

	public:
		// Functions from base classes

		/**
		 * CreateAppUiL
		 * From CEikDocument, CreateAppUiL.
		 * Create a CFM_RadioAppUi object and return a pointer to it.
		 * The object returned is owned by the Uikon framework.
		 * @return Pointer to created instance of AppUi.
		 */
		CEikAppUi* CreateAppUiL();

	private:
		// Constructors

		/**
		 * ConstructL
		 * 2nd phase constructor.
		 */
		void ConstructL();

		/**
		 * CFM_RadioDocument.
		 * C++ default constructor.
		 * @param aApp Application creating this document.
		 */
		CFM_RadioDocument(CEikApplication& aApp);

};

#endif // __FM_RADIODOCUMENT_h__
// End of File
